// (C) 2022 Intel Corporation. All rights reserved.
// Your use of Intel Corporation's design tools, logic functions and other 
// software and tools, and its AMPP partner logic functions, and any output 
// files from any of the foregoing (including device programming or simulation 
// files), and any associated documentation or information are expressly subject 
// to the terms and conditions of the Intel Program License Subscription 
// Agreement, Intel FPGA IP License Agreement, or other applicable 
// license agreement, including, without limitation, that your use is for the 
// sole purpose of programming logic devices manufactured by Intel and sold by 
// Intel or its authorized distributors.  Please refer to the applicable 
// agreement for further details.

module intr_detect
  (
   input       iSktOcc_n,
   input [1:0] iCpuProcId,
   input [2:0] iCpuPkgId,

   output      reg oIntrPrsnt_n,
   output      reg oIntrSel
   );

   always @(*)
     begin 
        case ({iSktOcc_n,iCpuProcId,iCpuPkgId})
          6'b011100, 6'b011101: begin
             oIntrPrsnt_n <= 1'b0;
             oIntrSel <= 1'b1;    //TypeA
          end
          6'b011110, 6'b011111: begin
             oIntrPrsnt_n <= 1'b0;
             oIntrSel <= 1'b0;
          end
          default : begin
             oIntrPrsnt_n = 1'b1;
             oIntrSel <= 1'b1;
          end
        endcase // case ({iSktOcc_n,iIntrCablePrsnt_n,iCpuProcId,iCpuPkgId})
     end

   
endmodule // intr_detect
